home *** CD-ROM | disk | FTP | other *** search
/ Sprite 1984 - 1993 / Sprite 1984 - 1993.iso / src / kernel / dev / sun4.md / devConfig.c < prev    next >
C/C++ Source or Header  |  1992-12-18  |  5KB  |  121 lines

  1. /* 
  2.  * devConfig.c --
  3.  *
  4.  *    Configuration table for the devices in the system.  There is
  5.  *    a table for the possible controllers in the system, and
  6.  *    then a table for devices.  Devices are implicitly associated
  7.  *    with a controller.  This file should be automatically generated
  8.  *    by a config program, but it isn't.
  9.  *
  10.  * Copyright 1989 Regents of the University of California
  11.  * Permission to use, copy, modify, and distribute this
  12.  * software and its documentation for any purpose and without
  13.  * fee is hereby granted, provided that the above copyright
  14.  * notice appear in all copies.  The University of California
  15.  * makes no representations about the suitability of this
  16.  * software for any purpose.  It is provided "as is" without
  17.  * express or implied warranty.
  18.  */
  19.  
  20. #ifndef lint
  21. static char rcsid[] = "$Header: /cdrom/src/kernel/Cvsroot/kernel/dev/sun4.md/devConfig.c,v 9.13 92/12/11 18:08:48 mgbaker Exp $ SPRITE (Berkeley)";
  22. #endif not lint
  23.  
  24.  
  25. #include "sprite.h"
  26. #include "devInt.h"
  27. #include "scsiHBA.h"
  28. #include "devTypes.h"
  29.  
  30. /*
  31.  * Per device include files.
  32.  */
  33. #include "scsi3.h"
  34. #include "xylogics450.h"
  35. #include "jaguar.h"
  36. #include "devTMR.h"
  37. #include "devVMElink.h"
  38. #include "devXbus.h"
  39. #include "atcreg.h"
  40.  
  41. /*
  42.  * The controller configuration table.
  43.  */
  44. DevConfigController devCntrlr[] = {
  45.    /* Name     Address,  Addr space, ID, InitProc   IntrVector  IntrRoutine. */
  46.     { "SCSI3#0",  0x200000, DEV_VME_D16A24, 0, DevSCSI3Init, 64, DevSCSI3Intr },
  47.     { "SCSI3#1", 0x210000, DEV_VME_D16A24, 1, DevSCSI3Init, 65, DevSCSI3Intr },
  48.     { "SCSI3#2", 0x220000, DEV_VME_D16A24, 2, DevSCSI3Init, 66, DevSCSI3Intr },
  49.     { "SCSI3#3", 0x230000, DEV_VME_D16A24, 3, DevSCSI3Init, 67, DevSCSI3Intr },
  50.     { "Xylogics450", 0xee40, DEV_VME_D16A16,     0, DevXylogics450Init,
  51.                     72, DevXylogics450Intr},
  52.     { "Jaguar0", 0x8800, DEV_VME_D16A16, 0, DevJaguarInit, 211, DevJaguarIntr},
  53.     { "Jaguar1", 0x9000, DEV_VME_D16A16, 1, DevJaguarInit, 215, DevJaguarIntr},
  54.     { "Jaguar2", 0x9800, DEV_VME_D16A16, 2, DevJaguarInit, 216, DevJaguarIntr},
  55.     { "Jaguar3", 0xc000, DEV_VME_D16A16, 3, DevJaguarInit, 217, DevJaguarIntr},
  56.     { "tmr0", 0xFFD14000, DEV_OBIO, 0, Dev_TimerProbe, 0, ((Boolean (*)())0)},
  57. /* VME link board for the xbus board */
  58.     { "VMElink0", 0x3000, DEV_VME_D16A16, 0,DevVMElinkInit,218,DevVMElinkIntr},
  59. /* VME link board for ATC1 */
  60.     { "VMElink1", 0x8700, DEV_VME_D16A16, 1,DevVMElinkInit,219,DevVMElinkIntr},
  61. /* VME link board for the HPPI boards */
  62.     { "VMElink2", 0x3100, DEV_VME_D16A16, 2,DevVMElinkInit,220,DevVMElinkIntr},
  63. /* VME link board for ATC2 */
  64.     { "VMElink3", 0x2100, DEV_VME_D16A16, 3,DevVMElinkInit,221,DevVMElinkIntr},
  65. /* VME link board for ATC3 */
  66.     { "VMElink4", 0x2200, DEV_VME_D16A16, 4,DevVMElinkInit,222,DevVMElinkIntr},
  67. /* VME link board for ATC4 */
  68.     { "VMElink5", 0x2300, DEV_VME_D16A16, 5,DevVMElinkInit,223,DevVMElinkIntr},
  69.     { "Xbus0", 0xd0000000, DEV_VME_D32A32, 0xd, DevXbusInit, 200, DevXbusIntr},
  70.     { "ATC1",    0x8740, DEV_VME_D16A16, 1, DevATCInit,    111, DevATCIntr},
  71.     { "ATC2",    0x2140, DEV_VME_D16A16, 2, DevATCInit,    112, DevATCIntr},
  72.     { "ATC3",    0x2240, DEV_VME_D16A16, 3, DevATCInit,    113, DevATCIntr},
  73.     { "ATC4",    0x2340, DEV_VME_D16A16, 4, DevATCInit,    114, DevATCIntr},
  74. };
  75. int devNumConfigCntrlrs = sizeof(devCntrlr) / sizeof(DevConfigController);
  76.  
  77. /*
  78.  * Table of SCSI HBA types attached to this system.
  79.  */
  80.  
  81. ScsiDevice *((*devScsiAttachProcs[]) _ARGS_((Fs_Device *devicePtr,
  82.         void (*insertProc) (List_Links *elementPtr,
  83.                                     List_Links *elementListHdrPtr)))) = {
  84.     DevSCSI3AttachDevice,        /* SCSI Controller type 0. */
  85.     DevNoHBAAttachDevice,        /* SCSI Controller type 1. */
  86.     DevJaguarAttachDevice,        /* SCSI Controller type 2. */
  87. };
  88. int devScsiNumHBATypes = sizeof(devScsiAttachProcs) / 
  89.              sizeof(devScsiAttachProcs[0]);
  90.  
  91. /*
  92.  * A list of disk devices that is used when probing for a root partition.
  93.  * The choices are:
  94.  * Drive 0 partition 0 of xylogics 450 controller 0.
  95.  * SCSI Disk target ID 0 LUN 0 partition 0 on SCSI3 HBA 0. 
  96.  * SCSI Disk target ID 0 LUN 0 partition 0 on SCSI3 HBA 1. 
  97.  */
  98. Fs_Device devFsDefaultDiskPartitions[] = { 
  99.     { -1, DEV_XYLOGICS, 0, (ClientData) NIL },    
  100.     { -1, SCSI_MAKE_DEVICE_TYPE(DEV_SCSI_DISK, DEV_SCSI3_HBA, 0, 0, 0, 0),
  101.       SCSI_MAKE_DEVICE_UNIT(DEV_SCSI_DISK, DEV_SCSI3_HBA, 0, 0, 0, 0),
  102.         (ClientData) NIL }, 
  103.     { -1, SCSI_MAKE_DEVICE_TYPE(DEV_SCSI_DISK, DEV_SCSI3_HBA, 0, 0, 0, 2),
  104.       SCSI_MAKE_DEVICE_UNIT(DEV_SCSI_DISK, DEV_SCSI3_HBA, 0, 0, 0, 2),
  105.         (ClientData) NIL }, 
  106.     { -1, SCSI_MAKE_DEVICE_TYPE(DEV_SCSI_DISK, DEV_SCSI3_HBA, 1, 0, 0, 0),
  107.       SCSI_MAKE_DEVICE_UNIT(DEV_SCSI_DISK, DEV_SCSI3_HBA, 1, 0, 0, 0),
  108.         (ClientData) NIL }, 
  109.     { -1, SCSI_MAKE_DEVICE_TYPE(DEV_SCSI_DISK, DEV_SCSI3_HBA, 1, 0, 0, 2),
  110.       SCSI_MAKE_DEVICE_UNIT(DEV_SCSI_DISK, DEV_SCSI3_HBA, 1, 0, 0, 2),
  111.         (ClientData) NIL }, 
  112.     { -1, SCSI_MAKE_DEVICE_TYPE(DEV_SCSI_DISK, DEV_SCSI3_HBA, 1, 4, 0, 0),
  113.       SCSI_MAKE_DEVICE_UNIT(DEV_SCSI_DISK, DEV_SCSI3_HBA, 1, 4, 0, 0),
  114.         (ClientData) NIL }, 
  115.     { -1, SCSI_MAKE_DEVICE_TYPE(DEV_SCSI_DISK, DEV_SCSI3_HBA, 1, 4, 0, 2),
  116.       SCSI_MAKE_DEVICE_UNIT(DEV_SCSI_DISK, DEV_SCSI3_HBA, 1, 4, 0, 2),
  117.         (ClientData) NIL }, 
  118.     };
  119. int devNumDefaultDiskPartitions = sizeof(devFsDefaultDiskPartitions) / 
  120.               sizeof(Fs_Device);
  121.